Skip to content

Add FIFA World Cup 2026 plugin#59

Closed
TimWheeler-SQUP wants to merge 9 commits into
mainfrom
work/tw/worldcup2026-plugin
Closed

Add FIFA World Cup 2026 plugin#59
TimWheeler-SQUP wants to merge 9 commits into
mainfrom
work/tw/worldcup2026-plugin

Conversation

@TimWheeler-SQUP

@TimWheeler-SQUP TimWheeler-SQUP commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

🔌 Plugin overview

  • Plugin name: FIFA World Cup 2026
  • Purpose / problem solved: Brings live World Cup 2026 data into SquaredUp — group standings, match results, upcoming fixtures, and knockout bracket — scoped to any indexed team object
  • Primary audience: Anyone following the FIFA World Cup 2026; teams wanting a fun live dashboard alongside their monitoring
  • Authentication method(s): None — uses the public community API at worldcup26.ir

🖼️ Plugin screenshots

image image

Plugin configuration

No configuration required — the API is public and unauthenticated.

Default dashboards

The bundled Team Dashboard contains four tiles scoped to a selected World Cup Team object:

  • Next Match — next upcoming fixture (transposed table)
  • Last Match — most recent completed match with result
  • Group Standings — all teams in the selected team's group, ranked by points/GD/GF
  • Stats — Country, Group, Goals For/Against/Difference, Points for the selected team

🧪 Testing

  • Deployed to a dev tenant using squaredup deploy --suffix tw --stage master
  • Tested with multiple team objects: Mexico, Czech Republic, England
  • Verified Group Standings filters correctly to the team's group (4 rows returned)
  • Verified Next Match and Last Match return correct data after matches are played
  • Verified Team Standing calculates W/D/L/Points/GD correctly from raw game data
  • Config validation step confirmed connectivity on plugin setup

⚠️ Known limitations

  • Data is sourced from an unofficial community API (worldcup26.ir) — not FIFA's official data feed. Availability and accuracy depend on that third-party service

📚 Checklist

  • Plugin, datastream and UI naming follow SquaredUp guidelines
  • Logo added
  • One or more dashboards added
  • README added including configuration guidance
  • No secrets or credentials included
  • I agree to the Code of Conduct

🤖 Generated with Claude Code

TimWheeler-SQUP and others added 8 commits June 12, 2026 10:36
Monitors all 48 teams, match results, group standings, and knockout fixtures via the community worldcup26.ir API. Includes per-team perspective dashboard with next/last match, group points, and stats tiles.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add name_en to indexed properties so context.objects[0].name_en is
  accessible in scripts (was undefined, causing all team filters to
  silently return no results)
- Update team-standing, next-match, last-match scripts to use name_en
- Convert matches and group-standings to httpRequestScopedSingle with
  the same World Cup Team object picker as team-standing

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Switch scoped streams from name-based to ID-based team matching
  (name_en property key may be normalised by SquaredUp; teamId is
  unambiguous and more robust)
- Store teamName and teamId as explicit properties with mapped keys
- Fix isHome check in team-standing to use team ID not name
- Add Country column to Team Standing data stream
- Rename MP -> Played and Pts -> Points in Group Standings

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix isHome check in next-match and last-match to use teamId (teamName
  was removed but still referenced, causing script errors)
- Unwrap teamName property with [].concat()[0] since SquaredUp stores
  indexed properties as arrays

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Indexed properties are stored as arrays in SquaredUp, so teamFilter was
["Mexico"] instead of "Mexico", causing the strict equality check to
never match and returning all 48 teams. Apply [].concat()[0] unwrapping
consistent with other scoped scripts.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Flag emojis prepended to all team/opponent name columns across
  group-standings, matches, next-match, last-match (name lookup),
  and team-standing (iso2-based conversion with ENG/SCO special cases)
- team-standing stream: add group and goal difference columns
- Stats OOB tile: now shows Country, Group, GF, GA, GD, Points
- Group Points OOB tile replaced with scoped Group Standings table
- teams-import: make id column hidden by default

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Revert flag emojis — Regional Indicator Symbol pairs render as letter
codes (HR, GH, PA) rather than flag images in SquaredUp's table tile.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@TimWheeler-SQUP TimWheeler-SQUP requested a review from a team June 12, 2026 11:57
Clicking Country in Team Standing or Team in Group Standings now
navigates to the World Cup Team object. Raw team ID is output as
the sourceId column; SquaredUp resolves World Cup Team~{id} in
the graph via the drilldown metadata entry on each stream.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

🧩 Plugin PR Summary

📦 Modified Plugins

  • plugins/WorldCup2026/v1

📋 Results

Step Status
Validation ✅ Passed
Deployment 🚀 Deployed

🔍 Validation Details

worldcup2026
{
  "valid": true,
  "pluginName": "worldcup2026",
  "pluginType": "hybrid",
  "summary": {
    "Data Streams": 7,
    "Import Definitions": 1,
    "UI Configuration": false,
    "Has Icon": true,
    "Has Default Content": true,
    "Config Validation": true,
    "Custom Types": true
  }
}

@TimWheeler-SQUP TimWheeler-SQUP requested a review from clarkd June 12, 2026 12:27
@TimWheeler-SQUP

Copy link
Copy Markdown
Contributor Author

Closing to reopen with updated description — plugin has been rewritten to use the openfootball static JSON data source instead of worldcup26.ir.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant